package cn.shen.common.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

@Data
@Accessors(chain = true)
@ApiModel("接口返回对象")
public class WebResult<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 成功标志
     */
    @ApiModelProperty("成功标志 true/false")
    private boolean success;

    /**
     * 失败消息
     */
    @ApiModelProperty("失败的详细信息")
    private String message;

    /**
     * 返回代码
     */
    @ApiModelProperty("返回的代码")
    private Integer code;

    /**
     * 时间戳
     */
    @ApiModelProperty("时间戳")
    private long timestamp = System.currentTimeMillis();

    /**
     * 结果对象
     */
    @ApiModelProperty("结果对象")
    private T result;

    public static <T> WebResult<T> newInstance() {
        return new WebResult<>();
    }
}
